// Common/Types.h

#pragma once
#include <minwindef.h>
#include <wtypes.h>

// all of this are defined
// typedef unsigned long       DWORD;
// typedef int                 BOOL;
// typedef unsigned char       BYTE;
// typedef unsigned short      WORD;
// typedef float               FLOAT;
// typedef FLOAT               *PFLOAT;
// typedef BOOL near           *PBOOL;
// typedef BOOL far            *LPBOOL;
// typedef BYTE near           *PBYTE;
// typedef BYTE far            *LPBYTE;
// typedef int near            *PINT;
// typedef int far             *LPINT;
// typedef WORD near           *PWORD;
// typedef WORD far            *LPWORD;
// typedef long far            *LPLONG;
// typedef DWORD near          *PDWORD;
// typedef DWORD far           *LPDWORD;
// typedef void far            *LPVOID;
// typedef CONST void far      *LPCVOID;
//
// typedef int                 INT;
// typedef unsigned int        UINT;
// typedef unsigned int        *PUINT;




typedef char               int8;       // 8 bit  signed integer
typedef unsigned char      uint8;      // 8 bit  unsigned integer
typedef short int          int16;      // 16 bit signed integer
typedef unsigned short int uint16;     // 16 bit unsigned integer
typedef long               int32;      // 32 bit signed integer
typedef unsigned long      uint32;     // 32 bit unsigned integer
typedef long long          int64;      // 64 bit signed integer
typedef unsigned long long uint64;     // 64 bit unsigned integer



#if defined _WIN64
#define  GWL_WNDPROC GWLP_WNDPROC
#endif



inline bool  toBool( BOOL value )
{
    return  ( value ) != FALSE;
}
inline BOOL  toBOOL( bool value )
{
    return static_cast<BOOL>( value );
}



typedef  DWORD QCOLOR;

